#ifndef PLUGIN_INTERFACE_H
#define PLUGIN_INTERFACE_H

#include <QObject>
#include <QtPlugin>

class MainWindow;
class CodeEditor;

class PluginInterface {
public:
    virtual ~PluginInterface() = default;
    
    virtual QString name() const = 0;
    virtual QString version() const = 0;
    virtual QString description() const = 0;
    
    virtual void initialize(MainWindow *mainWindow) = 0;
    virtual void shutdown() = 0;
};

#define PluginInterface_iid "org.codeforge.PluginInterface"

Q_DECLARE_INTERFACE(PluginInterface, PluginInterface_iid)

#endif // PLUGIN_INTERFACE_H